#ifndef CALC_TYPE_H_
#define CALC_TYPE_H_

#include <arm_neon.h>
#include "NE10.h"
#include "NE10_random.h"

#define ORDER_RAW_LENGTH                2560
#define ORDER_CIRCLE_MAX 				128					//阶比数

/*
#define SPD_DATA_SIZE_102K4				2048000				//MAX数据长度(uint8_t)(FIFO 2048 * 2 * 250次)
#define SPD_DATA_SIZE_51K2				2048000				//MAX数据长度(uint8_t)(FIFO 2048 * 2 * 250次)
#define SPD_DATA_SIZE_25K6				1024000				//以(uint8_t)为单位是AD采样率的4倍(FIFO 2048 * 2 * 125次)，FPGA自动将中断次数乘2
*/

#define DATA_CALC_MAX_SIZE				204800
#define L_PI 							3.1415926535897932
#define FAST_MATH_TABLE_SIZE  			512

typedef float32x4_t f32x4_t;
typedef float float32_t;


typedef struct cas_butter_coef_t {
    double g1;
    double b1[3];
    double a1[3];
    double g2;
    double b2[3];
    double a2[3];
    double g3;
    double b3[3];
    double a3[3];
}cas_butter_coef;

typedef struct test_config_t {
    ne10_uint32_t blockSize;
    ne10_uint32_t numTaps;
    ne10_uint32_t numFrames;
    ne10_float32_t *kCoeffsF32;
    ne10_float32_t *vCoeffsF32;
    ne10_float32_t *inputF32;
} test_config;

#endif
